// 导入 pinia
import { defineStore } from 'pinia'
import { ref } from 'vue'
import { userGetInfoService } from '@/api/user'

// 定义 store
export const useUserStore = defineStore(
  'big-user',
  () => {
    // 定义一个token
    const token = ref('')

    // 定义一个登录方法
    const setToken = (newToken) => {
      token.value = newToken
    }

    // 定义一个退出登录方法
    const removeToken = () => {
      token.value = ''
    }

    // 定义一个用户信息, 对象形式
    const user = ref({})
    // 定义一个设置用户信息方法
    const getUser = async () => {
      const res = await userGetInfoService() // 请求获取数据
      // 设置用户信息
      user.value = res.data.data
    }
    // 定义一个设置用户信息方法
    const setUser = (obj) => (user.value = obj)

    // 返回 store
    return {
      token,
      setToken,
      removeToken,
      user,
      getUser,
      setUser
    }
  },
  {
    // 配置持久化
    persist: true
  }
)
